#ifndef PROGRESSDIALOG_H
#define PROGRESSDIALOG_H

#include <QDialog>
#include <QLabel>
#include <QProgressBar>
#include <QPushButton>
#include <QVBoxLayout>

class ProgressDialog : public QDialog
{
    Q_OBJECT

public:
    explicit ProgressDialog(QWidget* parent = nullptr);
    void setProgress(int current, int total);
    void setStatusText(const QString& text);
    void setFileName(const QString& fileName);  // 新增：设置当前处理的文件名
    void setDetailedProgress(const QString& operation, int current, int total, const QString& fileName = "");  // 新增：详细进度信息
    bool wasCanceled() const { return m_canceled; }

signals:
    void canceled();

private slots:
    void onCancelClicked();

private:
    QLabel* m_titleLabel;        // 新增：显示操作标题
    QLabel* m_fileNameLabel;     // 新增：显示当前文件名
    QLabel* m_statusLabel;       // 状态文本
    QProgressBar* m_progressBar; // 进度条
    QPushButton* m_cancelButton; // 取消按钮
    bool m_canceled = false;
};

#endif // PROGRESSDIALOG_H 